/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.sorbonne.inf5.yams.model;

import fr.sorbonne.inf5.yams.exceptions.CombinaisonNotFoundException;
import fr.sorbonne.inf5.yams.exceptions.DeNotRunException;
import fr.sorbonne.inf5.yams.exceptions.TourPlayerOverException;
import fr.sorbonne.inf5.yams.model.combinaison.Combinaison;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Cette classe permet à l'IA de connaitre les détails du yams
 * Elle est présente pour éviter que l'IA dispose de tous les droits sur le yams
 * @author Riad Oukherfellah
 * @author Romain Dubos
 */
public class IAYams {

    private Yams yams;

    public IAYams(Yams yams){
        this.yams = yams;
    }

    public List<De> renvoyerDeCourant(){
        return yams.renvoyerDe();
    }

    public int renvoyerNombreLancerRestant(){
        return yams.getNbLancerRestant();
    }

    public Combinaison renvoyerCombinaison(String combinaison) throws CombinaisonNotFoundException{
        return yams.renvoyerCombinaison(combinaison);
    }

    public Set<Combinaison> getCombinaisons(){
        return yams.getCombinaisons();
    }

    public void bloquerDer(List<De> listeDe){
        yams.bloquerDe(listeDe);
    }

    public void lancerDe(){
        try {
            yams.lancerDes();
        } catch (TourPlayerOverException ex) {
            Logger.getLogger(IAYams.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void validerCombinaison(Combinaison c){
        try {
            yams.validerCombinaison(c);
        } catch (DeNotRunException ex) {
            Logger.getLogger(IAYams.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void changerJoueur(){
        yams.changerJoueur();
    }



}
